Modern storage systems are configured to enable providing copies of existing data for purposes of backup, possible restore in case of future data corruption, testing, etc. The copies may be provided with the help of backup and/or snapshot techniques. The use of snapshot techniques greatly reduces the amount of storage space required for archiving large amounts of data.
Problems of operating storage systems in the presence of a plurality of snapshots have been recognized in the conventional art and various techniques have been developed to provide solutions. For example:
US Patent Application No. 2011/0119459 (Satoyama et al.) discloses a storage system including a storage device which configures an original volume for storing data which is read/written by a host, a copy volume for storing a copy of the original volume at a predetermined timing, and a snapshot volume for storing a snapshot data which is a snapshot of the original volume; and a controller which controls access from the host to the storage device. The controller copies data of the original volume to the copy volume at a predetermined timing; stores the snapshot data in the snapshot volume corresponding to a write request to the original volume without decreasing a performance of the original volume; manages a generation of the stored snapshot according to predetermined copy volume blocks and snapshot volume blocks, and manages a generation of the copy volume; and reads data from the snapshot volume and/or the copy volume when a read request to a volume of a generation different from that of the original volume is received from the host, without decreasing a performance of the original volume.
US Patent Application No. 2008/172542 (Kaushik) discloses a method, apparatus and system of a hierarchy of a structure of a volume. In one embodiment, a system includes a physical volume, a structure to provide a mapping to a location of a data segment of the physical volume that may include a table having a hierarchy, a logical volume management module to define a logical volume as an arrangement of the physical volume, a snapshot module that may automatically generate a point-in-time image of the logical volume, may prompt the logical volume management module to create and insert a first table and a second table into the hierarchy of the structure, the first table may provide a set of updates to the logical volume, the second table may provide a set of updates to the point-in-time image, and a data processing system to perform a write IO operation and a read IO operation.
US Patent Application 2008/301203 (Adkins et al.) discloses an embodiment where at least one snapshot thread manages a point in time snapshot of a file system stored within the space allocated to the file system. The snapshot thread tracks, for at least one block of the plurality of blocks of the file system, a separate entry in a snapshot map specifying if each at least one block is newly allocated following the creation of the point in time snapshot and specifying an addressed location of a snapshot copy of the at least one block, if copied. Separately, a file system handling thread tracks a mapping of an allocation state of each of said plurality of blocks of the file system. Responsive to detecting the file system triggered to write or delete a particular block from among the at least one block of the file system, the snapshot thread allows the file system to write to or delete the particular block without making a snapshot copy of the particular block if a particular entry for the particular block in the snapshot map specifies the particular block is newly allocated, wherein a block marked newly allocated was not in-use at the point in time of the file system snapshot.
U.S. Pat. No. 6,038,639 (O'Brien et al.) discloses a data file storage management system for snapshot copy operations which maintains a two level mapping table enabling the data files to be copied using the snapshot copy process and only having to update a single corresponding mapping table entry when the physical location of the data file is changed. The snapshot copy updates to the contents of the first level of the two level mapping table, which are stored on the backend data storage devices to provide a record of the snapshot copy operation which can be used to recover the correct contents of the mapping table. This record of the snapshot copy operations remains valid even though the physical location of a copied data file instance is subsequently changed. Furthermore, the physical storage space holding the updated portions of the first level of the two level mapping table can be managed using techniques like those used to manage the physical storage space holding data file instances. Mapping table updates resulting from the snapshot copy operation are delayed until all mapping table updates resulting from earlier data file write operations have been completed and any attempt to update the mapping table to reflect data written to the original data file or the copy data file that occurs after initiation of the copy must wait until the first set of mapping table pointers have been copied.
U.S. Pat. No. 7,165,156 (Cameron, et al.) discloses a chain of snapshots including read-write snapshots descending from a read only snapshot. The read only snapshots present a constant view of the data at the time the read only snapshot is created, and the read-write snapshot starts with the view but can be modified by the user without changing the view of its parent snapshot (e.g., the read only snapshot). The read-write snapshot can be written for various testing purposes while the read only snapshot remains undisturbed to preserve the original data.
US Patent Application No. 2013/0124486 (Helman, et al.) discloses data storage with snapshot-to-snapshot recovery. A corrupted node under a first meta-volume node in a hierarchical tree structure is deleted. The hierarchical tree structure further includes a source node under the first meta-volume node. The corrupted node and the source node each include a respective set of local pointers. The corrupted node and the source node represent respective copies of a logical volume. The source node is reconfigured to become a second meta-volume node having the same set of local pointers as the source node. A first new node is created under the second meta-volume node in the hierarchical tree structure to represent the corrupted node. A second new node is created under the second meta-volume node to represent the source node. The first and second new nodes are configured to have no local pointers.